ファイル


■ テキストファイル、PDFファイル等をアプリでひらく

    下記はテキストファイルを開いた場合です。 pdf、doc等も同様です。 実行結果
   <プログラム例>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;//ファイル起動に必須

namespace FileKido
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                //ファイルを開いて終了まで待機する
                Process p = Process.Start("テスト用テキストファイル.txt");
            }
            catch
            {
                MessageBox.Show("ファイルが\n見つかりません");
            }
            
        }
    }
}


■ テキストファイルをリッチテキストに表示して、変更後保存する

以下のプログラムです
@テキストファイルを開き、リッチテキストに表示する。
Aリッチテキストの内容を変更する
Bファイルを保存する。

備考: コンポーネントとして、OpenFileDailogueとSaveFileDialogueをフォームにセットします。

          

   <プログラム例>

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace ファイル保存 { public partial class Form1 : Form { public Form1() { InitializeComponent(); this.Text = "ファイル開く・保存"; } private void button1_Click(object sender, EventArgs e) //保存 { // SaveFileDialog の新しいインスタンスを生成するい) SaveFileDialog saveFileDialog1 = new SaveFileDialog(); // ダイアログのタイトルを設定する saveFileDialog1.Title = "ここにダイアログのタイトルを書いてください"; // 初期表示するディレクトリを設定する saveFileDialog1.InitialDirectory = @"C:\"; // 初期表示するファイル名を設定する saveFileDialog1.FileName = "ファイル名(.txt)"; // ファイルのフィルタを設定する saveFileDialog1.Filter = "テキスト ファイル(.txt)|*.txt"; // saveFileDialog1.Filter = "テキスト ファイル|*.txt;*.log|すべてのファイル|*.*"; // ファイルの種類 の初期設定を 2 番目に設定する (初期値 1) saveFileDialog1.FilterIndex = 2; // ダイアログボックスを閉じる前に現在のディレクトリを復元する (初期値 false) saveFileDialog1.RestoreDirectory = true; // [ヘルプ] ボタンを表示する (初期値 false) saveFileDialog1.ShowHelp = true; // 存在しないファイルを指定した場合は、 // 新しく作成するかどうかの問い合わせを表示する (初期値 false) saveFileDialog1.CreatePrompt = true; // 存在しているファイルを指定した場合は、 // 上書きするかどうかの問い合わせを表示する (初期値 true) //saveFileDialog1.OverwritePrompt = true; // 存在しないファイル名を指定した場合は警告を表示する (初期値 false) //saveFileDialog1.CheckFileExists = true; // 存在しないパスを指定した場合は警告を表示する (初期値 true) //saveFileDialog1.CheckPathExists = true; // 拡張子を指定しない場合は自動的に拡張子を付加する (初期値 true) //saveFileDialog1.AddExtension = true; // 有効な Win32 ファイル名だけを受け入れるようにする (初期値 true) //saveFileDialog1.ValidateNames = true; // ダイアログを表示し、戻り値が [OK] の場合は、選択したファイルを表示する if (saveFileDialog1.ShowDialog() == DialogResult.OK) { System.IO.StreamWriter writer = null; writer = new System.IO.StreamWriter(saveFileDialog1.FileName, false, System.Text.Encoding.Default); string myText1 = richTextBox1.Text; //リッチテキストに表示されている文字を読み込む writer.Write(myText1); //リッチテキスト表示文字以外の文字追加 writer.Write("\r\n"); // 改行文字の書き込み writer.Write("\r\n"); // 改行文字の書き込み writer.Write("\r\n"); // 改行文字の書き込み writer.Write("Hellow"); // 文字列の書き込み writer.Write(123); // 数値の書き込み writer.Write("\r\n"); // 改行文字の書き込み writer.WriteLine("World"); // 文字列の書き込み(1行分) // ダイアログのタイトルにファイル名をフルパスで表示する string s = saveFileDialog1.FileName; this.Text = s; writer.Close(); } // 不要になった時点で破棄する (正しくは オブジェクトの破棄を保証する を参照) saveFileDialog1.Dispose(); } private void button2_Click(object sender, EventArgs e) //開く { // OpenFileDialog の新しいインスタンスを生成する (デザイナから追加している場合は必要ない) OpenFileDialog openFileDialog1 = new OpenFileDialog(); // ダイアログのタイトルを設定する openFileDialog1.Title = "ダイアログのタイトルをココに書く"; // 初期表示するディレクトリを設定する openFileDialog1.InitialDirectory = @"C:\"; // 初期表示するファイル名を設定する openFileDialog1.FileName = "初期表示するファイル名をココに書く"; // ファイルのフィルタを設定する openFileDialog1.Filter = "テキスト ファイル|*.txt;*.log|すべてのファイル|*.*"; // ファイルの種類 の初期設定を 2 番目に設定する (初期値 1) openFileDialog1.FilterIndex = 2; // ダイアログボックスを閉じる前に現在のディレクトリを復元する (初期値 false) openFileDialog1.RestoreDirectory = true; // 複数のファイルを選択可能にする (初期値 false) openFileDialog1.Multiselect = true; // [ヘルプ] ボタンを表示する (初期値 false) openFileDialog1.ShowHelp = true; // [読み取り専用] チェックボックスを表示する (初期値 false) openFileDialog1.ShowReadOnly = true; // [読み取り専用] チェックボックスをオンにする (初期値 false) openFileDialog1.ReadOnlyChecked = true; // 存在しないファイルを指定した場合は警告を表示する (初期値 true) //openFileDialog1.CheckFileExists = true; // 存在しないパスを指定した場合は警告を表示する (初期値 true) //openFileDialog1.CheckPathExists = true; // 拡張子を指定しない場合は自動的に拡張子を付加する (初期値 true) //openFileDialog1.AddExtension = true; // 有効な Win32 ファイル名だけを受け入れるようにする (初期値 true) //openFileDialog1.ValidateNames = true; if (openFileDialog1.ShowDialog() == DialogResult.OK) //ファイル選択のダイアログを表示 //戻り値がOKの場合は選択したファイルを表示する { // StreamReader の新しいインスタンスを生成する System.IO.StreamReader cReader = ( new System.IO.StreamReader(openFileDialog1.FileName, System.Text.Encoding.Default) ); // ファイルの最後まで読み込む string stBuffer = cReader.ReadToEnd(); // cReader を閉じる (正しくは オブジェクトの破棄を保証する を参照) cReader.Close(); richTextBox1.Text = stBuffer; //リッチテキストに読み込まれたファイルを表示 // ダイアログのタイトルにファイル名をフルパスで表示する string s = openFileDialog1.FileName; this.Text = s; } // 不要になった時点で破棄する (正しくは オブジェクトの破棄を保証する を参照) openFileDialog1.Dispose(); } private void button3_Click(object sender, EventArgs e) { richTextBox1.Clear(); //画面クリア } } }  
<実行結果>



■ コンソール出力をリッチテキストに表示

フォームアプリケーションから コンソールアプリケーションを起動してその出力を表示するプログラムです。
ボタンをクリックするとそれぞれ指定のコンソールアプリケーションが起動し、その出力をリッチテキストに
表示するプログラムです。 それぞれのコンソールアプリケーションは事前に実行ファイルを作成しておき、
所要のフォルダに配置しておきます。

          

   <プログラム例>

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;


namespace テキストボックスへの記入2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Process process = new Process();
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.RedirectStandardOutput = true; // 標準出力をリダイレクト
            process.StartInfo.CreateNoWindow = true;         // コンソールウィンドウを表示しない

          
            //フォームアプリの実行ファイルと同じフォルダにコンソールアプリの実行ファイルをセット
            //  process.StartInfo.FileName = "呼び出されコンソール.exe";

            //絶対パスでの実行ファイル指定
            process.StartInfo.FileName = @"c:\MyApp\ConsoleApp_Hellow.exe"; // 実行するファイル

            process.Start();

            process.WaitForExit();

            string output = process.StandardOutput.ReadToEnd();
            richTextBox1.Text = output; //コンソール出力をフォームのリッチテキストに表示する

            process.Close();

        }

        private void button2_Click(object sender, EventArgs e)
        {
            Process process = new Process();
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.RedirectStandardOutput = true; // 標準出力をリダイレクト
            process.StartInfo.CreateNoWindow = true;         // コンソールウィンドウを表示しない


            //フォームアプリの実行ファイルと同じフォルダにコンソールアプリの実行ファイルをセット
             process.StartInfo.FileName = "呼び出されコンソール.exe";

            process.Start();

            process.WaitForExit();

            string output = process.StandardOutput.ReadToEnd();
            richTextBox1.Text = output; //コンソール出力をフォームのリッチテキストに表示する

            process.Close();

        }
    }
}



//---------------------------------------------------------------
//コンソールアプリケーション1

sing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SimpleConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Spring");
            Console.WriteLine("Summer");
            Console.WriteLine("Autumn");
            Console.WriteLine("Winter");

        }
    }
}







//コンソールアプリケーション2

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _1b.呼び出されコンソールB
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hellow");
            Console.WriteLine("World !!");
            Console.WriteLine("Akihabara");
            Console.WriteLine("AKB48");
        }
    }
}

 

<実行結果>
SpringBtn ボタンをクリックした場合
HellowBtnをクリックした場合

 バイナリーファイル: バイト配列として 一括で開き、一括で保存する(ReadAllBytes/WriteAllBytes)

バイナリーファイルをバイト配列として、一括で開き 一括で表示して、一括で保存する例です。
 テキストファイルでも開けるので、正確にはファイルをバイト配列で開くと云った方がよいのかもしれません

          

   <プログラム例>

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.IO;

namespace ファイルを配列で読み_配列をファイル出力
{
    public partial class Form1 : Form
    {
        //グローバル変数
        byte[] myData;  //バイト配列として定義  

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)  //開く
        {
            // OpenFileDialog の新しいインスタンスを生成する (デザイナから追加している場合は必要ない)
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            // ダイアログのタイトルを設定する
            openFileDialog1.Title = "ダイアログのタイトルをココに書く";

            // 初期表示するディレクトリを設定する
            openFileDialog1.InitialDirectory = @"C:\";

            // 初期表示するファイル名を設定する
            openFileDialog1.FileName = "初期表示するファイル名をココに書く";

            // ファイルのフィルタを設定する
            openFileDialog1.Filter = "テキスト ファイル|*.txt;*.log|すべてのファイル|*.*";

            // ファイルの種類 の初期設定を 2 番目に設定する (初期値 1)
            openFileDialog1.FilterIndex = 2;

            // ダイアログボックスを閉じる前に現在のディレクトリを復元する (初期値 false)
            openFileDialog1.RestoreDirectory = true;

            // 複数のファイルを選択可能にする (初期値 false)
            openFileDialog1.Multiselect = true;

            // [ヘルプ] ボタンを表示する (初期値 false)
            openFileDialog1.ShowHelp = true;

            // [読み取り専用] チェックボックスを表示する (初期値 false)
            openFileDialog1.ShowReadOnly = true;

            // [読み取り専用] チェックボックスをオンにする (初期値 false)
            openFileDialog1.ReadOnlyChecked = true;

            // 存在しないファイルを指定した場合は警告を表示する (初期値 true)
            //openFileDialog1.CheckFileExists = true;

            // 存在しないパスを指定した場合は警告を表示する (初期値 true)
            //openFileDialog1.CheckPathExists = true;

            // 拡張子を指定しない場合は自動的に拡張子を付加する (初期値 true)
            //openFileDialog1.AddExtension = true;

            // 有効な Win32 ファイル名だけを受け入れるようにする (初期値 true)
            //openFileDialog1.ValidateNames = true;


//配列読込

            if (openFileDialog1.ShowDialog() == DialogResult.OK)    //ファイル選択のダイアログを表示
            //戻り値がOKの場合は選択したファイルを表示する
            {
                myData = File.ReadAllBytes(openFileDialog1.FileName); // 読み込み

            }

            // 不要になった時点で破棄する (正しくは オブジェクトの破棄を保証する を参照)
            openFileDialog1.Dispose();

        }




        private void button2_Click(object sender, EventArgs e)  //表示
        {


//超高速16進表示

            richTextBox1.Text = BitConverter.ToString(myData);  //バイト列を16進数文字列に変換 //1秒以下
            richTextBox1.Text = richTextBox1.Text.Replace("-", ",0x");//-を,0xに置き換え
            richTextBox1.Text = "0x" + richTextBox1.Text;//先頭にも0xを追加してリッチテキストボックスに表示


////まとめて表示(foreach版)
//            string Str1 = null;

//            foreach (byte b in myData)  //すべてのmyData[]配列
//            {
//                Str1 = Str1 + String.Format("{0:x} ", b);    //1分16秒
//            }
//            richTextBox1.Text = Str1;



// //まとめて表示(foreach版)
//            string Str2 = null;

//            for (int i = 0; i < myData.Length; i++)  //すべてのmyData[]配列
//            {
//                Str2 = Str2 + String.Format("{0:x} ", myData[i]);    //1分16秒
//            }
//            richTextBox1.Text = Str2;




// //1バイト毎に、追記  

//            foreach (byte b in myData)  //すべてのmyData[]配列
//            {
//                   richTextBox1.AppendText(String.Format("0x{0:x} ", b));  //3分57秒 リッチテキストに1個づづ追加
//            }

        
          


            DialogResult result = MessageBox.Show
                ("表示が完了しました",
                 "連絡",
                  MessageBoxButtons.OK,      //YesNo
                  MessageBoxIcon.Information,         //アイコンのデザイン選択 Error: X  Exclamation: ! 
                  MessageBoxDefaultButton.Button1);   //フォーカスの位置  //推奨ボタン

        }





        private void button3_Click(object sender, EventArgs e)  //保存
        {
            // SaveFileDialog の新しいインスタンスを生成するい)
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            // ダイアログのタイトルを設定する
            saveFileDialog1.Title = "ここにダイアログのタイトルを書いてください";

            // 初期表示するディレクトリを設定する
            saveFileDialog1.InitialDirectory = @"C:\";

            // 初期表示するファイル名を設定する
            saveFileDialog1.FileName = "ファイル名(.txt)";

            // ファイルのフィルタを設定する
            saveFileDialog1.Filter = "テキスト ファイル(.txt)|*.txt";


            saveFileDialog1.Filter = "テキスト ファイル|*.txt;*.log|すべてのファイル|*.*";

            // ファイルの種類 の初期設定を 2 番目に設定する (初期値 1)
            saveFileDialog1.FilterIndex = 2;

            // ダイアログボックスを閉じる前に現在のディレクトリを復元する (初期値 false)
            saveFileDialog1.RestoreDirectory = true;

            // [ヘルプ] ボタンを表示する (初期値 false)
            saveFileDialog1.ShowHelp = true;

            // 存在しないファイルを指定した場合は、
            // 新しく作成するかどうかの問い合わせを表示する (初期値 false)
            saveFileDialog1.CreatePrompt = true;

            // 存在しているファイルを指定した場合は、
            // 上書きするかどうかの問い合わせを表示する (初期値 true)
            //saveFileDialog1.OverwritePrompt = true;

            // 存在しないファイル名を指定した場合は警告を表示する (初期値 false)
            //saveFileDialog1.CheckFileExists = true;

            // 存在しないパスを指定した場合は警告を表示する (初期値 true)
            //saveFileDialog1.CheckPathExists = true;

            // 拡張子を指定しない場合は自動的に拡張子を付加する (初期値 true)
            //saveFileDialog1.AddExtension = true;

            // 有効な Win32 ファイル名だけを受け入れるようにする (初期値 true)
            //saveFileDialog1.ValidateNames = true;

            // ダイアログを表示し、戻り値が [OK] の場合は、選択したファイルを表示する


            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {

                File.WriteAllBytes(saveFileDialog1.FileName, myData); //ファイルに配列myData[]全部を保存

            }

            // 不要になった時点で破棄する (正しくは オブジェクトの破棄を保証する を参照)
            saveFileDialog1.Dispose();
        }
    }
}

  
<実行結果>

  バイナリーファイル: バイト配列として 逐次開き、保存する(Read/Write)         

 
バイナリーファイルをバイト配列として、Read/Writeメソッドをつかい、512バイト単位で開き 一括で表示して、一括で保存する例です。


  <プログラム例>

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


using System.IO;    //FileStreamに必須

namespace FileStream_Read_block
{
    public partial class Form1 : Form
    {
        byte[] Buf; //読み出したファイルデータのバイト配列

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // OpenFileDialog の新しいインスタンスを生成する (デザイナから追加している場合は必要ない)
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            // ダイアログのタイトルを設定する
            openFileDialog1.Title = "ダイアログのタイトルをココに書く";

            // 初期表示するディレクトリを設定する
            openFileDialog1.InitialDirectory = @"C:\";

            // 初期表示するファイル名を設定する
            openFileDialog1.FileName = "初期表示するファイル名をココに書く";

            // ファイルのフィルタを設定する
            openFileDialog1.Filter = "テキスト ファイル|*.txt;*.log|すべてのファイル|*.*";

            // ファイルの種類 の初期設定を 2 番目に設定する (初期値 1)
            openFileDialog1.FilterIndex = 2;

            // ダイアログボックスを閉じる前に現在のディレクトリを復元する (初期値 false)
            openFileDialog1.RestoreDirectory = true;

            // 複数のファイルを選択可能にする (初期値 false)
            openFileDialog1.Multiselect = true;

            // [ヘルプ] ボタンを表示する (初期値 false)
            openFileDialog1.ShowHelp = true;

            // [読み取り専用] チェックボックスを表示する (初期値 false)
            openFileDialog1.ShowReadOnly = true;

            // [読み取り専用] チェックボックスをオンにする (初期値 false)
            openFileDialog1.ReadOnlyChecked = true;

            // 存在しないファイルを指定した場合は警告を表示する (初期値 true)
            //openFileDialog1.CheckFileExists = true;

            // 存在しないパスを指定した場合は警告を表示する (初期値 true)
            //openFileDialog1.CheckPathExists = true;

            // 拡張子を指定しない場合は自動的に拡張子を付加する (初期値 true)
            //openFileDialog1.AddExtension = true;

            // 有効な Win32 ファイル名だけを受け入れるようにする (初期値 true)
            //openFileDialog1.ValidateNames = true;

            if (openFileDialog1.ShowDialog() == DialogResult.OK)    //ファイル選択のダイアログを表示
            //戻り値がOKの場合は選択したファイルを表示する
            {
                // StreamReader の新しいインスタンスを生成する
                FileStream fs = new FileStream(
                  openFileDialog1.FileName, FileMode.Open, FileAccess.Read);

                int fileSize = (int)fs.Length; // ファイルのサイズ
                Buf = new byte[fileSize]; // データ格納用配列

                int readSize; // Readメソッドで読み込んだバイト数
                int remain = fileSize; // 読み込むべき残りのバイト数
                int bufPos = 0; // データ格納用配列内の追加位置

                while (remain > 0)
                {

                    readSize = fs.Read(Buf, bufPos, Math.Min(512, remain)); // 512Bytesずつ読み込む

                    bufPos += readSize;
                    remain -= readSize;
                }
                fs.Dispose();


            }

            // 不要になった時点で破棄する (正しくは オブジェクトの破棄を保証する を参照)
            openFileDialog1.Dispose();


        }

        private void button2_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = BitConverter.ToString(Buf); //16進数表示

        }

        private void button3_Click(object sender, EventArgs e)
        {

            // SaveFileDialog の新しいインスタンスを生成するい)
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            // ダイアログのタイトルを設定する
            saveFileDialog1.Title = "ここにダイアログのタイトルを書いてください";

            // 初期表示するディレクトリを設定する
            saveFileDialog1.InitialDirectory = @"C:\";

            // 初期表示するファイル名を設定する
            saveFileDialog1.FileName = "ファイル名(.txt)";

            // ファイルのフィルタを設定する
            saveFileDialog1.Filter = "テキスト ファイル(.txt)|*.txt";



            //   saveFileDialog1.Filter = "テキスト ファイル|*.txt;*.log|すべてのファイル|*.*";

            // ファイルの種類 の初期設定を 2 番目に設定する (初期値 1)
            saveFileDialog1.FilterIndex = 2;

            // ダイアログボックスを閉じる前に現在のディレクトリを復元する (初期値 false)
            saveFileDialog1.RestoreDirectory = true;

            // [ヘルプ] ボタンを表示する (初期値 false)
            saveFileDialog1.ShowHelp = true;

            // 存在しないファイルを指定した場合は、
            // 新しく作成するかどうかの問い合わせを表示する (初期値 false)
            saveFileDialog1.CreatePrompt = true;

            // 存在しているファイルを指定した場合は、
            // 上書きするかどうかの問い合わせを表示する (初期値 true)
            //saveFileDialog1.OverwritePrompt = true;

            // 存在しないファイル名を指定した場合は警告を表示する (初期値 false)
            //saveFileDialog1.CheckFileExists = true;

            // 存在しないパスを指定した場合は警告を表示する (初期値 true)
            //saveFileDialog1.CheckPathExists = true;

            // 拡張子を指定しない場合は自動的に拡張子を付加する (初期値 true)
            //saveFileDialog1.AddExtension = true;

            // 有効な Win32 ファイル名だけを受け入れるようにする (初期値 true)
            //saveFileDialog1.ValidateNames = true;

            // ダイアログを表示し、戻り値が [OK] の場合は、選択したファイルを表示する


            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //ファイルを作成して書き込む
                //ファイルが存在しているときは、上書きする
                System.IO.FileStream fs = new System.IO.FileStream(
                    saveFileDialog1.FileName,
                    System.IO.FileMode.Create,//ファイルが存在する場合は、上書きする。
                                                //存在しない場合は、新たに作成する。書き込み時にのみ使用できる。
                    System.IO.FileAccess.Write);    //書込みモード

                //バイト型配列の内容をすべて書き込む
                fs.Write(Buf, 0, Buf.Length);  //先頭から末尾まで //(書き込むバイト配列,書込み開始位置,書込むバイト数)//Writeメソッドには戻り値なし
                                                // Buf.Length : 全バイト配列

                //閉じる
                fs.Close();

            }

            // 不要になった時点で破棄する (正しくは オブジェクトの破棄を保証する を参照)
            saveFileDialog1.Dispose();
        }










    }
}

 

<実行結果>

■ バイナリファイル: Seekで指定した位置から 指定長さ(バイト数)だけファイルを開く

 オフセット3( シーク位置 Seek = 3 )バイトの位置から、5バイトの長さでファイルを開いた(データを読み出してバイト配列にした)例です。

  <プログラム例>


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.IO;    //ファイルストリームに必須

namespace FileSeek
{
    public partial class Form1 : Form
    {
        //配列を宣言
        byte[] Buf;     //読み込んだ値を格納する配列のオフセット(先頭番号)
        byte[] Buf1;    //読み込んだ値を格納する配列のオフセット(先頭番号)

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)  //Seek位置から指定のバイト数だけ開く
        {

            // OpenFileDialog の新しいインスタンスを生成する (デザイナから追加している場合は必要ない)
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            // ダイアログのタイトルを設定する
            openFileDialog1.Title = "ダイアログのタイトルをココに書く";

            // 初期表示するディレクトリを設定する
            openFileDialog1.InitialDirectory = @"C:\";

            // 初期表示するファイル名を設定する
            openFileDialog1.FileName = "初期表示するファイル名をココに書く";

            // ファイルのフィルタを設定する
            openFileDialog1.Filter = "テキスト ファイル|*.txt;*.log|すべてのファイル|*.*";

            // ファイルの種類 の初期設定を 2 番目に設定する (初期値 1)
            openFileDialog1.FilterIndex = 2;

            // ダイアログボックスを閉じる前に現在のディレクトリを復元する (初期値 false)
            openFileDialog1.RestoreDirectory = true;

            // 複数のファイルを選択可能にする (初期値 false)
            openFileDialog1.Multiselect = true;

            // [ヘルプ] ボタンを表示する (初期値 false)
            openFileDialog1.ShowHelp = true;

            // [読み取り専用] チェックボックスを表示する (初期値 false)
            openFileDialog1.ShowReadOnly = true;

            // [読み取り専用] チェックボックスをオンにする (初期値 false)
            openFileDialog1.ReadOnlyChecked = true;

            // 存在しないファイルを指定した場合は警告を表示する (初期値 true)
            //openFileDialog1.CheckFileExists = true;

            // 存在しないパスを指定した場合は警告を表示する (初期値 true)
            //openFileDialog1.CheckPathExists = true;

            // 拡張子を指定しない場合は自動的に拡張子を付加する (初期値 true)
            //openFileDialog1.AddExtension = true;

            // 有効な Win32 ファイル名だけを受け入れるようにする (初期値 true)
            //openFileDialog1.ValidateNames = true;

            if (openFileDialog1.ShowDialog() == DialogResult.OK)    //ファイル選択のダイアログを表示
            //戻り値がOKの場合は選択したファイルを表示する
            {
                // StreamReader の新しいインスタンスを生成する
                FileStream fs = new FileStream(
                  openFileDialog1.FileName, FileMode.Open, FileAccess.Read);



                int readNumfile = 3;   //ファイルにおける、読出し開始のオフセット(バイト)
                int readSize0 = 5;  //Readメソッドで読み込もうとするバイト数
                int readSize1;      // Readメソッドで読み込んだバイト数
                int bufPos = 0;     //読み込んだ値を格納する配列のオフセット(先頭番号)

                int fileSize = (int)fs.Length; // ファイルのサイズ
                Buf = new byte[readSize0]; // データ格納用配列初期化

                fs.Seek(readNumfile, SeekOrigin.Begin);   //ファイルの先頭から3バイト目にSeek位置を移動

                readSize1 = fs.Read(Buf, bufPos,readSize0); // 5btesだけ読み込み、データ格納用配列内の0から保存する


                fs.Dispose();





            }

            // 不要になった時点で破棄する (正しくは オブジェクトの破棄を保証する を参照)
            openFileDialog1.Dispose();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = BitConverter.ToString(Buf);
        }



        private void button3_Click(object sender, EventArgs e)  //開く    //全部読出し
        {
            // OpenFileDialog の新しいインスタンスを生成する (デザイナから追加している場合は必要ない)
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            // ダイアログのタイトルを設定する
            openFileDialog1.Title = "ダイアログのタイトルをココに書く";

            // 初期表示するディレクトリを設定する
            openFileDialog1.InitialDirectory = @"C:\";

            // 初期表示するファイル名を設定する
            openFileDialog1.FileName = "初期表示するファイル名をココに書く";

            // ファイルのフィルタを設定する
            openFileDialog1.Filter = "テキスト ファイル|*.txt;*.log|すべてのファイル|*.*";

            // ファイルの種類 の初期設定を 2 番目に設定する (初期値 1)
            openFileDialog1.FilterIndex = 2;

            // ダイアログボックスを閉じる前に現在のディレクトリを復元する (初期値 false)
            openFileDialog1.RestoreDirectory = true;

            // 複数のファイルを選択可能にする (初期値 false)
            openFileDialog1.Multiselect = true;

            // [ヘルプ] ボタンを表示する (初期値 false)
            openFileDialog1.ShowHelp = true;

            // [読み取り専用] チェックボックスを表示する (初期値 false)
            openFileDialog1.ShowReadOnly = true;

            // [読み取り専用] チェックボックスをオンにする (初期値 false)
            openFileDialog1.ReadOnlyChecked = true;

            // 存在しないファイルを指定した場合は警告を表示する (初期値 true)
            //openFileDialog1.CheckFileExists = true;

            // 存在しないパスを指定した場合は警告を表示する (初期値 true)
            //openFileDialog1.CheckPathExists = true;

            // 拡張子を指定しない場合は自動的に拡張子を付加する (初期値 true)
            //openFileDialog1.AddExtension = true;

            // 有効な Win32 ファイル名だけを受け入れるようにする (初期値 true)
            //openFileDialog1.ValidateNames = true;

            if (openFileDialog1.ShowDialog() == DialogResult.OK)    //ファイル選択のダイアログを表示
            //戻り値がOKの場合は選択したファイルを表示する
            {
                // StreamReader の新しいインスタンスを生成する
                FileStream fs = new FileStream(
                openFileDialog1.FileName, FileMode.Open, FileAccess.Read);

                int fileSize = (int)fs.Length; // ファイルのサイズ
                Buf1 = new byte[fs.Length]; // データ格納用配列初期化

                fs.Read(Buf1, 0, fileSize);    // fs.Read(Buf1, 0, fs.Length)はコンパイラNG
                                               //要: int fileSize = (int)fs.Length; 
                fs.Dispose();   

            }

            // 不要になった時点で破棄する (正しくは オブジェクトの破棄を保証する を参照)
            openFileDialog1.Dispose();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            richTextBox2.Text = BitConverter.ToString(Buf1);

        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}

 

<実行結果>

■ 文字列のコンテキストに従った Copy・Pasete・Cut・Delete・Clear
・文字列をコンテキストにしたがって、コピー、貼り付け、切り取り、削除、画面クリアする例です。
 コマンドはコンテキスト(操作の流れ、文脈)に従いをショートカットメニューに表示しています。
・コーディング先立ち ツールボックスからcontextMenueStripを選択して、各richTextBoxにドロップします。
 そして、各リッチテキストのcontextMenuStripプロパティにそれぞれのcontextMenuStripを設定します。 

  <プログラム例>

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Context_CopyPaste
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void cutToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.Cut();
        }

        private void copyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.Copy();
        }

        private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.Paste();
        }

        private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.SelectedText = "";
        }

        private void clearToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.Clear();
        }

        private void カットToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox2.Cut();
        }

        private void コピーToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox2.Copy();
        }

        private void ペーストToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox2.Paste();
        }

        private void クリアToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox2.Clear();
        }

        private void デリートToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox2.SelectedText = "";
        }
    }
}

 

<実行結果>
<左のリッチテキストから文字列コピー>
<右のリッチテキストに文字列をペースト>




 リッチテキストボックスで、指定行の文字列を他の指定行にコピーする

リッチテキストボックスで、指定した行の文字列をコピーして他の指定行の文字列に貼り付け追加する例です。

  <プログラム例>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace designated_position_Copy
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            richTextBox1.Text = "00000\n11111\n22222\n33333\n44444";
            richTextBox2.Text = "aaaaa\nbbbbb\nccccc\nddddd\neeeee";
                                
                                
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int N1 = richTextBox1.GetFirstCharIndexFromLine(2);  //2行目の先頭インデックスを取得
            string str = richTextBox1.Lines[2]; //2行目の文字列を取得(\nを含まず)
            richTextBox1.Select(N1,str.Length );  //2行目の文字列を選択
            richTextBox1.Copy();



            int N2 = richTextBox2.GetFirstCharIndexFromLine(3);
            richTextBox2.Select(N2, 0);
            richTextBox2.Paste();




        }
    }
}

 

<実行結果>
<実行前>
<実行前>


  <プログラム例>

main() { }